package com.rightrule.rule.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
public class DecisionFieldDTO implements Serializable {

    private Long id;

    private Long buId;

    private Long interfaceId;

    /**
     * 策略域id
     */
    private Long domainId;

    /**
     * 在线版本id
     */
    private Long versionId;

    /**
     * 变量名
     */
    private String fieldName;

    /**
     * 变量接口名
     */
    private String interfaceName;

    /**
     * 变量方法名
     */
    private String methodName;

    /**
     * 绑定接口的版本号
     */
    private String bindInterfaceVersion;

    /**
     * 变量中文描述
     */
    private String fieldDesc;

    /**
     * 没有获取到值时候返回的默认值
     */
    private String defaultValue;

    /**
     * 未取到值时的处理方式：1，use_default 2,throw_e
     */
    private String fallbackMethod;

    /**
     * 返回值，0 int 1 varchar 2 double
     */
    private Integer returnType;

    /**
     * 依赖索引变量名
     */
    private String dependField;

    /**
     * 执行逻辑类型：rpc,groovy
     */
    private String logicType;

    /**
     * 变量逻辑
     */
    private String fieldLogic;

    /**
     * 变量执行脚本
     */
    private String scriptData;

    /**
     * 校验类型
     */
    private Integer validationType;

    /**
     * 变量校验脚本
     */
    private String validationScript;

    /**
     * 策略编码
     */
    private String strategyCode;

    /**
     * 变量请求出参
     */
    private String valueKey;

    /**
     * 连接db实例名称
     */
    private String dbSource;

    /**
     * 变量请求入参
     */
    private String params;

    /**
     * 变量来源类型
     * BUSINESS_JNCOMTNG （L.“决策输入 ，
     * DECISTONL RETURU（2，“决策输出”，
     * RPC_PULL (3,
     * “RPC泛化调用），
     * Q8BS OPFL.TNE PULL （4，“自定 XSOL ），
     * SCRIPT BXECUTE （5.“脚本”，
     */
    private Integer source;

    /**
     * 多变量类型
     */
    private List<Integer> sourceList;

    /**
     * 変量版本状：INIT， NO TEST， TESTED， FINISH， OFFLINE
     */

    private String status;
    /**
     * 是否有效：0无效，1有效
     * private Integer validState;
     * ／**
     * 创建者
     */
    private String gmtCreator;

    /**
     * 修改者
     */
    private String gmtModifier;

    /**
     * 创建时间
     */
    private Date gmtCreated;

    /**
     * 修改时间
     */
    private Date gmtModified;

    /**
     * 变量编辑权限0无权限，1读权限，2写权限
     */
    private Integer editAuth;

    /**
     * 维护人列表，以返号为分制
     */
    private String operators;

    /**
     * 数値型：ENUN, NUN, SELF_DERINE
     */
    private String valueType;

    /**
     * 优先級类型：ENUL FEAD, BIG_NUN, SMALL_NUM
     */
    private String priorityType;

    /**
     * 枚举值列表为json数据组，如：［'REJECT'，REVIEW'， PASS]
     */
    private String enumList;

    /**
     * 变量脚本执行对系
     */
    private Object groovyClass;

    /**
     * 是否展示新建版本按钮0不显示 1显示
     */
    private Integer addShow;

    /**
     * 决策拉取变量异常，决策的处理方式 PENDING：重试，IGNORE 忽略
     */
    private String errorHandleType;

}
